/**
 * 日志工具类
 * 用于记录应用程序的日志信息，包括debug和info级别
 * 配置为显示进程ID，线程ID，文件名#行号
 */
export const logger = {
  /**
   * 调试级别日志，用于记录详细信息
   * @param msg 日志消息
   * @param data 附加数据（可选）
   */
  debug: (msg: string, data?: any) => {
    const info = new Error();
    const lineInfo = info.stack?.split('\n')[2]?.match(/\((.*):\d+:\d+\)/);
    const file = lineInfo ? lineInfo[1].split('/').pop() : 'unknown';
    const line = info.stack?.split('\n')[2]?.match(/:(\d+):/);
    console.debug(
      `[PID:${window.performance.now().toFixed(0)}][TID:${Date.now() % 10000}][${file}#${line ? line[1] : '?'}] ${msg}`, 
      data || ''
    );
  },
  
  /**
   * 信息级别日志，用于记录流程性信息
   * @param msg 日志消息
   * @param data 附加数据（可选）
   */
  info: (msg: string, data?: any) => {
    const info = new Error();
    const lineInfo = info.stack?.split('\n')[2]?.match(/\((.*):\d+:\d+\)/);
    const file = lineInfo ? lineInfo[1].split('/').pop() : 'unknown';
    const line = info.stack?.split('\n')[2]?.match(/:(\d+):/);
    console.info(
      `[PID:${window.performance.now().toFixed(0)}][TID:${Date.now() % 10000}][${file}#${line ? line[1] : '?'}] ${msg}`, 
      data || ''
    );
  }
}; 